#pragma once

#include "fm33le0xx_fl.h"

typedef void (*clock_cb_t)(uint32_t ticks_ms);

void sys_nvic_init(void);

void sys_clock_init(void);

void sys_hardware_init(void);

void sys_select_rchf_to_pll(uint8_t freq);

void sys_select_lp_clk(void);

uint32_t sys_clock_get_ms(void);

void sys_clock_delay_ms(uint32_t ms);

void sys_clock_enable_4hz_cb(clock_cb_t cb);

// 进入中断要费电，不利于低功耗
void sys_clock_disable_it();

void sys_select_rchf_8m_clk(void);

// 设置RTC时间
void sys_clock_set_time(uint8_t hour, uint8_t minute, uint8_t second);

// 获取RTC时间
uint8_t sys_clock_get_time(uint8_t* hour, uint8_t* minute, uint8_t* second);
